package demo.javax.servlet.http;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 
 * servlet是一种运行服务器端的java应用程序，具有独立于平台和协议的特性，并且可以动态的生成web页面，它工作在客户端请求与服务器响应的中间层。
 * 
 * 职责
 * <li>创建并返回一个包含基于客户请求性质的动态内容的完整的html页面；
 * <li>创建可嵌入到现有的html页面中的一部分html页面（html片段）；
 * <li>读取客户端发来的隐藏数据；
 * <li>读取客户端发来的显示数据；
 * <li>与其他服务器资源（包括数据库和java的应用程序）进行通信；
 * <li>通过状态代码和响应头向客户端发送隐藏数据。
 * 
 * <p>
 * servlet 流程是短的，url传来之后，就对其进行处理，之后返回或转向到某一自己指定的页面。它主要用来在 业务处理之前进行控制.
 *
 */
public class HttpServletDemo extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("param_name");

        req.setAttribute("username", name);
        req.getRequestDispatcher("/a/b/c.jsp").forward(req, resp);
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}
